This disclosure relates to serialization and, more particularly, to methodologies for determining the cause of serialization failures.
Software applications may convert an object or graph of objects into a sequence of bits. These bits may persist on a storage medium or may be transmitted across a network. The process of converting the object or graph of objects into the sequence of bits may be referred to as serialization. The reverse process of converting those bits back into the object or graph of objects may be referred to as deserialization.
Serialization may be used, for example, to share a user's session data for a web application between web application servers, or to store the state of some data objects in a database. Serializing an object may result in other objects referenced by that object also being serialized. The objects that those secondary objects reference may also be serialized, and so on until an entire graph of objects may be written to a byte stream.
Some objects may not be serializable, or the serialization code they may depend on may fail. Accordingly, errors may occur when attempting to deserialize these objects or graphs of objects. As such, there may be a need to improve ways to test an object or object graph to determine if it is serializable.